Fix ParentFlags propagating in TryEmitNewExpression#493
Open
exyi wants to merge 2 commits intodadhi:masterfrom
Open
Fix ParentFlags propagating in TryEmitNewExpression#493exyi wants to merge 2 commits intodadhi:masterfrom
exyi wants to merge 2 commits intodadhi:masterfrom
Conversation
* new ParentFlags is created, similarly to TryEmitMethodCall - this avoids unwanted propagation of IgnoreResult, MemberAccess, ... * handle ParentFlags.InstanceAccess - emit load address instruction * set closure.LastEmitIsAddress (this should be reset to avoid leaking this value from the emit of last argument) * handle IgnoresResult
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sorry, I tried fixing one NewExpression issue and it snowballed a bit.
I'm not sure how exactly ParentFlags is supposed to be used, and therefore unsure if my fix is right. However,
TryEmitMethodCalldoes not propagate any flags to its arguments, so it makes sense thatTryEmitNewExpressionshouldn't do that either. The rest of the changes inTryEmitNewExpressionis just handling of InstanceAccess and IgnoresResult parent flags.The removed
| ParentFlags.Ctorat 5084 seemed just like alternative solution for issue 333, which is now handled by not propagating InstanceAccess flag to constructor arguments.If you don't like this, feel free to point out any problems or just cherrypick the new unit tests (it's a separate commit) and fix them differently.
AI disclaimer: the unit tests were written with AI assistance (and I at least read all of it)